<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='UTF-8'>
     <meta name='viewport' content='width=device-width, initial-scale=1.0'>
     <title>数组的其他方法</title>
     <link rel='stylesheet' href='//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/default.min.css'>
     <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/highlight.min.js'></script>
</head>
<body>
     <pre>
        <code style='max-height: 400px;'>
                /** 
                    * 
                    * 数组的其他方法
                    * join、from、sort、find、forEach、map、findIndex、includes、indexOf...
                    * 创建
                    *  
                */
                
                let arr = [1,10,1,2,3,3,4,5,6,'454','你好']
                // forEach循环
                arr.forEach(element => {
                    console.log('ele',element);
                });

                console.log('includes',arr.includes(1)); // true 返回的是Boolean值

                // findIndex
                console.log('findIndex',arr.find(item => item == 0)); // 找不到返回undefined
                console.log('findIndex',arr.find(item => item == 1)); //找到之后返回符合条件的那一项值

                // indexOf
                console.log('indexOf',arr.findIndex(item => item == 1)); // 返回第一个符合条件的值的下标
                // lastIndexof
                console.log('lastIndexOf',arr.lastIndexOf(3)); // 返回符合条件的最后一个值的下标
                // fill 方法将数组所有的项填充为指定的值
                arr.fill(10)
                console.log(arr);
                let _arr = [1,2,3,4,5,6]
                _arr.fill(100)
                console.log('_arr',_arr);

                // concat 链接两个数组组成新的数组 es6提供的解构赋值 也可以实现
                let s = [1,2]
                let ss = s.concat([1,2])
                console.log('ss',ss);

                sss = [...[1,2],...[3,4]]
                console.log('sss',sss);

                // some
                let _as = [1,2,3,4,5,6]
                let _sa = [2,3,4,5,6,7]

                let done = _as.some(item => item >= 1 )
                console.log('[1,2,3,4,5,6].some(item => item >= 1)',done); // true
                // some是如果里面有一个为真则直接进行返回真 every如果有一个假则返回假
                let _done = _sa.some(item => item < 1) 
                console.log('[2,3,4,5,6,7].some(item => item < 1)',_done); // false

                // every
                let ds = _as.every(item => item > 1)
                console.log('ds',ds); // false
                let sd = _sa.every(item => item > 1)
                console.log('sd',sd); // true
        </code>
     </pre>
     <script> hljs.highlightAll(); </script>
     <script>
        /** 
         * 
         * 数组的其他方法
         * join、from、sort、find、forEach、map、findIndex、includes、indexOf...
         * 创建
         *  */ 

        let arr = [1,10,1,2,3,3,4,5,6,'454','你好']
        // forEach循环
        arr.forEach(element => {
            console.log('ele',element);
        });

        console.log('includes',arr.includes(1)); // true 返回的是Boolean值

        // findIndex
        console.log('findIndex',arr.find(item => item == 0)); // 找不到返回undefined
        console.log('findIndex',arr.find(item => item == 1)); //找到之后返回符合条件的那一项值

        // indexOf
        console.log('indexOf',arr.findIndex(item => item == 1)); // 返回第一个符合条件的值的下标
        // lastIndexof
        console.log('lastIndexOf',arr.lastIndexOf(3)); // 返回符合条件的最后一个值的下标
        // fill 方法将数组所有的项填充为指定的值
        arr.fill(10)
        console.log(arr);
        let _arr = [1,2,3,4,5,6]
        _arr.fill(100)
        console.log('_arr',_arr);

        // concat 链接两个数组组成新的数组 es6提供的解构赋值 也可以实现
        let s = [1,2]
        let ss = s.concat([1,2])
        console.log('ss',ss);

        sss = [...[1,2],...[3,4]]
        console.log('sss',sss);

        // some
        let _as = [1,2,3,4,5,6]
        let _sa = [2,3,4,5,6,7]

        let done = _as.some(item => item >= 1 )
        console.log('[1,2,3,4,5,6].some(item => item >= 1)',done); // true
        // some是如果里面有一个为真则直接进行返回真 every如果有一个假则返回假
        let _done = _sa.some(item => item < 1) 
        console.log('[2,3,4,5,6,7].some(item => item < 1)',_done); // false

        // every
        let ds = _as.every(item => item > 1)
        console.log('ds',ds); // false
        let sd = _sa.every(item => item > 1)
        console.log('sd',sd); // true
     </script>
</body>
</html>